package com.gidgabs.modules.dao;

import com.gidgabs.common.utils.Assist;
import com.gidgabs.modules.entity.TbProductCommentEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 产品关系表-评论表
 * 
 * @author lanyonglin
 * @email www.baidu.com
 * @date 2018-06-29 17:16:10
 */
@Mapper
@Repository
public interface TbProductCommentDao extends BaseDao<TbProductCommentEntity> {
    int queryCount(TbProductCommentEntity tbProductCommentEntity);


    /**
     * 获得TbProductComment数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     *
     * @param assist
     * @return
     */
    long getTbProductCommentRowCount(Assist assist);

    /**
     * 获得TbProductComment数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     *
     * @param assist
     * @return
     */
    List<TbProductCommentEntity> selectTbProductComment(Assist assist);
    /**
     * 通过TbProductComment的id获得TbProductComment对象
     *
     * @param id
     * @return
     */
    TbProductCommentEntity selectTbProductCommentById(Integer id);

    /**
     * 获得一个TbProductComment对象,以参数TbProductComment对象中不为空的属性作为条件进行查询,返回符合条件的第一条
     *
     * @param obj
     * @return
     */
    TbProductCommentEntity selectTbProductCommentObjSingle(TbProductCommentEntity obj);

    /**
     * 获得一个TbProductComment对象,以参数TbProductComment对象中不为空的属性作为条件进行查询
     *
     * @param obj
     * @return
     */
    List<TbProductCommentEntity> selectTbProductCommentByObj(TbProductCommentEntity obj);

    /**
     * 插入TbProductComment到数据库,包括null值
     *
     * @param value
     * @return
     */
    int insertTbProductComment(TbProductCommentEntity value);

    /**
     * 插入TbProductComment中属性值不为null的数据到数据库
     *
     * @param value
     * @return
     */
    int insertNotNullTbProductComment(TbProductCommentEntity value);

    /**
     * 批量插入TbProductComment到数据库,包括null值
     *
     * @param value
     * @return
     */
    int insertTbProductCommentByBatch(List<TbProductCommentEntity> value);
    /**
     * 通过TbProductComment的id删除TbProductComment
     *
     * @param id
     * @return
     */
    int deleteTbProductCommentById(Integer id);

    /**
     * 通过辅助工具Assist的条件删除TbProductComment
     *
     * @param assist
     * @return
     */
    int deleteTbProductCommentByAssist(Assist assist);

    /**
     * 通过TbProductComment的id更新TbProductComment中的数据,包括null值
     *
     * @param enti
     * @return
     */
    int updateTbProductCommentById(TbProductCommentEntity enti);

    /**
     * 通过TbProductComment的id更新TbProductComment中属性不为null的数据
     *
     * @param enti
     * @return
     */
    int updateNotNullTbProductCommentById(TbProductCommentEntity enti);

    /**
     * 通过辅助工具Assist的条件更新TbProductComment中的数据,包括null值
     *
     * @param value
     * @param assist
     * @return
     */
    int updateTbProductComment(@Param("enti") TbProductCommentEntity value, @Param("assist") Assist assist);

    /**
     * 通过辅助工具Assist的条件更新TbProductComment中属性不为null的数据
     *
     * @param value
     * @param assist
     * @return
     */
    int updateNotNullTbProductComment(@Param("enti") TbProductCommentEntity value, @Param("assist") Assist assist);
}
